/*******************************************************************/
/*    Copyright (c) 2008-2010 by Spatial Corp.                     */
/*    All rights reserved.                                         */
/*******************************************************************/

// EBomTreeNode.h: interface for the EBomTreeNode class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(EBOM_TREE_NODE_H_)
#define EBOM_TREE_NODE_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <stdlib.h>
#include <string.h>
#include <TCHAR.H>

#ifdef XERCES_YES

class EBomTreeNode
{
public:
					EBomTreeNode();
					EBomTreeNode( const int numOfChild, const TCHAR* nodeName, const TCHAR* fileName, const TCHAR* srcFileName, const TCHAR* referenceId = NULL,
						const double* positionMatrix = NULL );
	virtual			~EBomTreeNode();

					EBomTreeNode( const EBomTreeNode& );	
	EBomTreeNode&	operator =( const EBomTreeNode& );

public:
	const int GetSize() const;;
	const TCHAR* GetNodeName() const;;
	const double* GetPositionMatrix() const;;
	const TCHAR* GetFileName() const;;
	void	SetFileName( TCHAR* ); 
	const TCHAR* GetSrcFileName() const;;
	void	SetSrcFileName( TCHAR* ); 
	EBomTreeNode** GetChilds() const;;
	const TCHAR* GetRefLinkId() const;;

private:
	TCHAR*		m_nodeName;
	TCHAR*		m_fileName;//including full path
	TCHAR*		m_srcFileName;//original part file full path
	TCHAR*		m_refLinkId; // Bashi Add
	double*		m_positionMatrix;
	int			m_sizeOfChild;
	EBomTreeNode**	m_ppChildList;
};

#endif // ifdef XERCES_YES
#endif // !defined(EBOM_TREE_NODE_H_)
